Date		:	15 mai 1994
		Programme	:	QPEG V1.3k
		Protection	:       TEMPO SHAREWARE
		Outils		:	SOFT-ICE V2.64
		Temps pass�	:	1 heure
		Fichier		:       QPEG.EXE
		Soci�t�		:	SHAREWARE
		Divers		:	Comprim� par PKLITE pro.
		Origine		:	DPTOOLS
		Num�ro		:	244


	UNP n'y voit que du feu lorsqu'il essaie de d�comprimer l'exe, m�me
	la version 2.0a !
	La routine de compression de PKLITE doit �tre incluse lors de
	l'assemblage ( � v�rifier lorsque j'aurais le temps ).
	La solution finale sera un lanceur comme d'habitude dans ces cas l�.
	J'essaie de faire apparaitre SOFT-ICE lorsque je suis dans la boucle
	de tempo, pendant que les 15 caract�res disparaissent les uns apr�s
	les autres � l'�cran. Mais en vain.
	J'essaie l'int 10 puisque l'on raze l'�cran juste apr�s avoir appuy�
	sur ALT-X.
	C'est bon. Je d�roule au pas � pas et je tombe sur le CALL responsable
	de la tempo en CS:3AD0.

	CS=0984
	CS:3ACD E8FBC8		CALL	03CB	;AFFICHE TEXTE 
	CS:3AD0 E868DB		CALL	163B	;TEMPO !
	CS:3AD3 803E5C0F00	CMP	BYTE PTR [05FC],00

	J'essaie de sauter le CALL 163B avec un RIP 3AD3 mais le soft se
	plante. Il faut donc chercher dans le CALL 163B. 
	La premi�re chose qui saute aux yeux est la comparaison avec 15 en
	CS:1744. C'est le nombre de carcat�res qui se d�cr�mente � l'�cran.
	Je fais [BP-02] �gal � 00 et j'essaie. Le soft se plante toujours !
	Je fais CMP avec 00: idem. Avec 01 encore pareil ! Je force le saut
	qui suit, �a replante !

	CS:163B 
	  :
	  :
	CS:1744 837EFE0F	CMP	WORD PTR [BP-02],+0F ; CMP LES 15 CARS.
	CS:1748 75..            JNZ	....

	A premi�re vue il semble que lors du d�roulement de chaque it�ration le
	soft va initialiser ou v�rifier quelque chose. Je le trace jusqu'� la
	sortie avec MOV AH,4C et INT 21 dans un cas et dans l'autre mais je
	ne remarque aucune diff�rence. Simplement qu'il ne revient pas au DOS
	lorsque je trafique la routine de la tempo. 
	J'essaie un dernier truc: laisser la boucle de la tempo telle qu'elle
	est et simplement agir sur la tempo elle-m�me afin de l'acc�l�rer ou
	de la supprimer. Dans le CALL 163B il y avait un autre CALL que je
	n'avais pas examin�: CALL 03ED. En mettant un point d'arr�t juste
	apr�s on s'aper�oit bien que c'est ce CALL qui temporise.

	CS:163B 
	  :
	CS:1726 E8C4EC		CALL	03ED		     ;TEMPO !
	  :
	CS:1744 837EFE0F	CMP	WORD PTR [BP-02],+0F ; CMP LES 15 CARS.

	Je plonge dedans et trouve juste un CALL far entour� de quelques
	amuse-gueules classiques: PUSH, POP, NOP, CLOP, PAS-CLOP.
	Je l'anihile avec mon d�sint�grateur photonique et j'essaie.
	
	CS:03ED 55		PUSH	BP   ; Etablissement d'un stack frame
	  :
	  :
	CS:03F3 9A4D01F618	CALL	18F6:014D	; Tempo !	

	....l'�cran SHAREWARE ainsi que les 15 caract�res apparaissent...
	et disparaissent aussitot �cras� par l'image de NC v4.0 Francais !

	Ca a march�.

	Il faut donc param�trer le lanceur comme suit:

;******************************************************************************
;                             ZONE A INITIALISER

adr_ip1         equ     03F3h  ; Adresse dont le contenu est � modifier.

anc_val         equ     4D9Ah  ; Valeur d'origine � rechercher, invers�e.
				
nouv_val        equ     03EBh   ; Nouvelle valeur (la modif).
INT_DET         equ     10h     ; Le num�ro de l'INT que l'on veut utiliser.
;******************************************************************************

		db      55h,0aah        ; Identificateur de d�but.
chaine:         db      '����������ğre��y���������Ŀ'
		db      '�                          �'
		db      '�       QPEG  Bypass       �'
		db      "�  I hope you'll enjoy it  �"
		db      '�                          �'
		db      '��� Lan�eur Crypt� V1.1 ����'
mess_err        db      0ah,0dh,'Programme enfant non trouv�','$'
nom_prg         db      'qpeg.exe',0,0,0,0,0   ; 12 car max + nul
chaine_fin:     db      0aah,55h        ; Identificateur de fin.


	Nota: Un petit probl�me existe lorsque mon lanceur est dans le path,
	il ne cherche pas le programme fils dans le path mais dans le
	r�pertoire courant. C'est un peu g�nant. A voir... 

	Freddy